// Vercel Serverless Function
const { MongoClient } = require('mongodb');

// MongoDB 连接 URL（需要替换）
const uri = process.env.MONGODB_URI;

// 数据库和集合名称
const dbName = 'random-practice';
const collectionName = 'words';

// 默认词库
const defaultWords = [
    '个人', '书籍', '记忆类型', '数字锚点', 
    '其它锚点', '科学', '国家', '城市', 
    '地图', '时间'
];

module.exports = async (req, res) => {
    // 设置 CORS 头
    res.setHeader('Access-Control-Allow-Origin', '*');
    res.setHeader('Access-Control-Allow-Methods', 'GET, POST');
    res.setHeader('Access-Control-Allow-Headers', 'Content-Type');

    // 处理 OPTIONS 请求
    if (req.method === 'OPTIONS') {
        res.status(200).end();
        return;
    }

    const client = new MongoClient(uri);

    try {
        await client.connect();
        const collection = client.db(dbName).collection(collectionName);

        if (req.method === 'GET') {
            // 获取所有词
            const words = await collection.findOne({ _id: 'wordsList' });
            if (!words) {
                // 如果没有数据，初始化默认词库
                await collection.insertOne({ 
                    _id: 'wordsList',
                    words: defaultWords 
                });
                res.json({ words: defaultWords });
            } else {
                res.json({ words: words.words });
            }
        } else if (req.method === 'POST') {
            // 添加新词
            const { word } = req.body;
            if (!word) {
                res.status(400).json({ error: '词不能为空' });
                return;
            }

            const result = await collection.findOneAndUpdate(
                { _id: 'wordsList' },
                { 
                    $addToSet: { words: word }
                },
                { 
                    upsert: true,
                    returnDocument: 'after'
                }
            );

            res.json({ words: result.value.words });
        }
    } catch (error) {
        res.status(500).json({ error: '服务器错误' });
    } finally {
        await client.close();
    }
}; 